package com.tc.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.io.Serializable;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author jcd
 * @since 2025-07-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("insured_person")
@ApiModel(value = "被保险人对象", description = "被保险人")
public class Insured_person implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    @TableId(value = "patient_id", type = IdType.AUTO)
    private Long patientId;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    @TableField("name")
    private String name;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    @TableField("id_card")
    private String idCard;

    /**
     * 住院号
     */
    @ApiModelProperty(value = "住院号")
    @TableField("住院号")
    private String hospitalNumber;

    /**
     * 性别（男/女）
     */
    @ApiModelProperty(value = "性别（男/女）")
    @TableField("gender")
    private String gender;

    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄")
    @TableField("age")
    private Integer age;

    /**
     * 出生日期
     */
    @ApiModelProperty(value = "出生日期")
    @TableField("birth_date")
    private LocalDateTime birthDate;

    /**
     * 支付类型（自费/医保）
     */
    @ApiModelProperty(value = "支付类型（自费/医保）")
    @TableField("payment_type")
    private String paymentType;

    /**
     * 医保人员类型（在职/退休）
     */
    @ApiModelProperty(value = "医保人员类型（在职/退休）")
    @TableField("person_category")
    private String personCategory;

    /**
     * 医院等级（三级/二级/一级）
     */
    @ApiModelProperty(value = "医院等级（三级/二级/一级）")
    @TableField("hospital_level")
    private String hospitalLevel;

    @ApiModelProperty(value ="家庭住址")
    @TableField("address")
    private String address;


    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间，入院时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
    
    /**
     * 逻辑删除标志（0-未删除，1-已删除）
     */
    @ApiModelProperty(value = "逻辑删除标志（0-未删除，1-已删除）")
    @TableLogic
    @TableField("deleted")
    private Integer deleted;
}
